The present invention generally pertains to communications delivered to programming subscribers and is particularly directed to an improvement in delivering interactive program guide (IPG) data to a receiver from which a program guide can be retrieved.
The IPG data is delivered by a programming service provider to a receiver at a subscriber location and stored in a memory within the receiver so that a program guide can be retrieved by the subscriber whenever desired. The programming includes, for example, television shows, music, and informational data pertaining to various subjects, which are broadcast over different channels via communications satellite transmission and/or cable.
The IPG data includes schedule-data for each of a plurality of channels scheduled to be broadcast within each of a plurality of time slots within a given extended period of time, description-data for all of the programming within each of the plurality of time slots, and such non-time-sensitive data as foundation data. The given extended period of a time for which IPG data is delivered encompasses an extended period of programming, such as several days, and each time slot encompasses a shorter period of programming, such as four, eight or twenty-four hours.
The schedule-data for the different time slots within the given extended period is delivered in respectively different delivery periods and the description-data for the different time slots within the given extended period is delivered in respectively different delivery periods. The schedule data delivered to the receiver memory for the first time slot indicates the start times and programming identifiers for each of the different programs that are scheduled to be available on all of the plurality of channels during the first time slot, and the schedule data delivered to the receiver memory for the second time slot for the given extended period indicates the start times and programming identifiers for each of the different programs that are scheduled to be available on the second time slot during the given extended period.
The description data provides a brief description of various attributes of the different programs, such as names of lead actors and a brief plot synopsis for a movie, as typically provided in a printed programming guide. The description data is retrieved within the receiver by referring to a tag or label therein that is also included in the schedule data for the program.
The foundation data includes data that is necessary for retrieval of the schedule data and the description data for display, such as Huffman tables that are necessary to decompress the schedule data and the description data delivered to and stored in the receiver memory, channel name tables, theme classes and slot sizes for common data blocks. The receiver includes a decoder that utilizes the foundation data to decode schedule data and description data retrieved from the receiver memory in order to display the retrieved data on a video monitor. The foundation data usually is delivered at least twice for the given extended period for which schedule data and description data is delivered for a plurality of different time slots.
The respective sizes of a block of schedule data and a block of description data for a given time slot typically are such that an entire block of either type of data cannot be broadcast as a single data burst having not more than a predetermined number of bytes, such as 1024 bytes, and thereby must be segmented for delivery to the receiver. In accordance with a method of delivering such data in segments, the first segment of the schedule data for each time slot includes a segment count indicating the number of schedule-data segments that are to be delivered for the given time slot; and the first segment of the description data for each time slot includes a segment count indicating the number of description-data segments that are to be delivered for the given time slot. The receiver allocates memory space for storing the number of segments indicated by the segment count included in the first segment of the schedule data received for the given time slot and also allocates additional memory space for storing the number of segments indicated by the segment count included in the first segment of the description data received for the given time slot. Since it takes a significant amount of time for the receiver to allocate such memory space, the second segment of schedule/description data for the given time slot will be lost if it is delivered immediately after delivery of the first segment of schedule/description data for the given time slot before allocation of the memory space for storage of all of the schedule/description-data segments has been completed.
The present invention provides a method of delivering interactive program guide (IPG) data and non-time-sensitive data to a receiver from which a program guide can be retrieved, said IPG data including one or more schedule-data segments for each of a plurality of time slots and one or more description-data segments for each of the plurality of time slots, the method comprising the steps of:
(a) delivering the schedule-data segments for a first time slot;
(b) delivering the description-data segments for the first time slot;
(c) delivering the schedule-data segments and the description-data segments for each of the remaining time slots;
(d) subsequent to the delivery of the first schedule-data segment for each time slot, during a gap of sufficient duration to enable the receiver to allocate memory space for storing all of the schedule-data segments for the time slot, delivering non-time-sensitive data for use by the receiver; and
(e) subsequent to the delivery of the first description-data segment for each time slot, during a gap of sufficient duration to enable the receiver to allocate memory space for storing all of the description-data segments for the time slot, delivering non-time-sensitive data for use by the receiver. It is not necessary that the schedule data for a given time slot be delivered prior to delivery of the description data for the given time slot, whereby either one of steps (a) and step (b) can be performed before the other of these two steps.
Preferably, the non-time-sensitive data delivered during steps (d) and (e) includes further IPG data, to wit: a plurality of foundation-data segments having a predetermined closed-loop order; wherein during the gap according to step (d) that is subsequent to the delivery of the first schedule-data segment for the first time slot, the delivered non-time-sensitive data includes an initial number of foundation-data segments in the predetermined order; wherein during each of the next remaining respective gaps of steps (d) and (e), the delivered non-time-sensitive data includes the next number of foundation-data segments in the predetermined order; and wherein the respective number of foundation-data segments delivered during each gap are of sufficient duration to enable the receiver to allocate memory space for storing the respective schedule-data segments or description-data segments for the time slot.
The present invention also provides a system for accessing IPG data and non-time-sensitive data for delivery to a receiver from which a program guide can be retrieved, said IPG data including one or more schedule-data segments for each of a plurality of time slots and one or more description-data segments for each of the plurality of time slots, the system comprising: means for accessing the IPG data and the non-time-sensitive data for delivery such that the IPG data and the non-time-sensitive data can be delivered by the steps, of the above-described method of delivering IPG data and non-time-sensitive data to a receiver from which a program guide can be retrieved.
The present invention further provides a computer readable storage medium for use in a system for accessing IPG data and non-time-sensitive data for delivery to a receiver from which a program guide can be retrieved, said IPG data including one or more schedule-data segments for each of a plurality of time slots and one or more description-data segments for each of the plurality of time slots, wherein the storage medium is configured so as to cause the IPG data and the non-time-sensitive data to be accessed for delivery such that the IPG data and the non-time-sensitive data can be delivered by the steps of the above-described method of delivering IPG data and non-time-sensitive data to a receiver from which a program guide can be retrieved.
Additional features of the present invention are described with reference to the detailed description of the preferred embodiments.